
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projovem.relatorios.sintesesupervisao;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManagerFactory;
import projovem.dao.NucleoDAO;
import projovem.relatorios.sintesesupervisao.vo.Rotina001SinteseSupervisaoVo;
import projovem.rotinas.R001.Rotina001;

/**
 *
 * @author admprojovem
 */
public class SinteseSupervisaoRotina001 implements Serializable {

    private NucleoDAO nucleoDao = new NucleoDAO();
    private Rotina001SinteseSupervisaoVo contagem = new Rotina001SinteseSupervisaoVo();

    public Rotina001SinteseSupervisaoVo gerarRelatorio(String coordenacaoEscolhida, String entradaEscolhida, String municipioEscolhida, EntityManagerFactory emf) {

        List<Rotina001> listaRotina001 = nucleoDao.obtemNucleosByCoordenacaoAndEntradaAndRotina001(coordenacaoEscolhida, entradaEscolhida, municipioEscolhida, emf);
        contagem.setListaRotina001(listaRotina001);


        for (Rotina001 rotina : listaRotina001) {

            Integer totalDeAlunosObservados = 0;
            Integer totalDeAlunosApresentaramTesteOuRegistro = 0;
            Integer totalDeAlunosLevaramDocumentos = 0;
            Integer totalDeAlunosLevaramComprovante = 0;
            Integer totalDeAlunosPreencheramFichas = 0;
            Integer totalDeAlunosReceberamOrientacao = 0;
            Integer totalDeAlunosEfetivaramMatricula = 0;
            Integer totalDeAlunosConfirmaramOnline = 0;

            if (rotina.getQ2() != null && !rotina.getQ2().isEmpty() && Integer.parseInt(rotina.getQ2()) > 0) {
                contagem.setQ2havia(contagem.getQ2havia() + 1);
            }
            if (rotina.getQ2().equals("") || Integer.parseInt(rotina.getQ2()) == 0) {
                contagem.setQ2naohavia(contagem.getQ2naohavia() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ3() != null && rotina.getQ3().equals("menos15")) {
                contagem.setQ3a(contagem.getQ3a() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }
            if (rotina.getQ3() != null && rotina.getQ3().equals("16e30")) {
                contagem.setQ3b(contagem.getQ3b() + 1);
            }
            if (rotina.getQ3() != null && rotina.getQ3().equals("mais31")) {
                contagem.setQ3c(contagem.getQ3c() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ4NaoHavia() != null && rotina.getQ4NaoHavia().equals("Sim")) {
                contagem.setQ4(contagem.getQ4() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ5() != null && !rotina.getQ5().isEmpty() && Integer.parseInt(rotina.getQ5()) > 0) {
                totalDeAlunosObservados++;
                totalDeAlunosObservados += Integer.parseInt(rotina.getQ5());
            }
            if (totalDeAlunosObservados != 0) {
                if (rotina.getQ6a() != null && !rotina.getQ6a().isEmpty() && Integer.parseInt(rotina.getQ6a()) > 0) {
                    totalDeAlunosApresentaramTesteOuRegistro++;
                    totalDeAlunosApresentaramTesteOuRegistro += Integer.parseInt(rotina.getQ6a());
                }
                Integer TotalAlunos6a = 0;
                if (totalDeAlunosApresentaramTesteOuRegistro != 0) {
                    TotalAlunos6a = totalDeAlunosObservados / totalDeAlunosApresentaramTesteOuRegistro;
                } else {
                    TotalAlunos6a = 3;
                }
                if (TotalAlunos6a >= 3) {
                    contagem.setQ6ame(contagem.getQ6ame() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                } else if (TotalAlunos6a <= 1.5) {
                    contagem.setQ6ma(contagem.getQ6ma() + 1);
                    contagem.setPositivo(contagem.getPositivo() + 1);
                }

                if (rotina.getQ7a() != null && !rotina.getQ7a().isEmpty() && Integer.parseInt(rotina.getQ7a()) > 0) {
                    totalDeAlunosLevaramDocumentos++;
                    totalDeAlunosLevaramDocumentos += Integer.parseInt(rotina.getQ7a());
                }
                if (rotina.getQ7b() != null && !rotina.getQ7b().isEmpty() && Integer.parseInt(rotina.getQ7b()) > 0) {
                    totalDeAlunosLevaramComprovante++;
                    totalDeAlunosLevaramComprovante += Integer.parseInt(rotina.getQ7b());
                }
               if (rotina.getQ7c() != null && !rotina.getQ7c().isEmpty() && Integer.parseInt(rotina.getQ7c()) > 0) {
                    totalDeAlunosPreencheramFichas++;
                    totalDeAlunosPreencheramFichas += Integer.parseInt(rotina.getQ7c());
                }
                if (rotina.getQ7d() != null && !rotina.getQ7d().isEmpty() && Integer.parseInt(rotina.getQ7d()) > 0) {
                    totalDeAlunosReceberamOrientacao++;
                    totalDeAlunosReceberamOrientacao += Integer.parseInt(rotina.getQ7d());
                }

                Integer TotalAlunos7a = 0;
                if (totalDeAlunosLevaramDocumentos != 0) {
                    TotalAlunos7a = totalDeAlunosObservados / totalDeAlunosLevaramDocumentos;
                } else {
                    TotalAlunos7a = 4;
                }
                if (TotalAlunos7a <= 3) {
                    contagem.setQ7ame(contagem.getQ7ame() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                } else {
                    contagem.setQ7ama(contagem.getQ7ama() + 1);
                }

                Integer TotalAlunos7b = 0;
                if (totalDeAlunosLevaramComprovante != 0) {
                    TotalAlunos7b = totalDeAlunosObservados / totalDeAlunosLevaramComprovante;
                } else {
                    TotalAlunos7b = 4;
                }
                if (TotalAlunos7b <= 3) {
                    contagem.setQ7bme(contagem.getQ7bme() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                } else {
                    contagem.setQ7bma(contagem.getQ7bma() + 1);
                }

                Integer TotalAlunos7c = 0;
                if (totalDeAlunosPreencheramFichas != 0) {
                    TotalAlunos7c = totalDeAlunosObservados / totalDeAlunosPreencheramFichas;
                } else {
                    TotalAlunos7c = 4;
                }
                if (TotalAlunos7c > 3) {
                    contagem.setQ7cme(contagem.getQ7cme() + 1);
                } else {
                    contagem.setQ7cma(contagem.getQ7cma() + 1);
                    contagem.setPositivo(contagem.getPositivo() + 1);
                }

                Integer TotalAlunos7d = 0;
                if (totalDeAlunosReceberamOrientacao != 0) {
                    TotalAlunos7d = totalDeAlunosObservados / totalDeAlunosReceberamOrientacao;
                } else {
                    TotalAlunos7d = 4;
                }
                if (TotalAlunos7d > 3) {
                    contagem.setQ7dme(contagem.getQ7dme() + 1);
                } else {
                    contagem.setQ7dma(contagem.getQ7dma() + 1);
                    contagem.setPositivo(contagem.getPositivo() + 1);
                }

                if (rotina.getQ8a() != null && !rotina.getQ8a().isEmpty() && Integer.parseInt(rotina.getQ8a()) > 0) {
                    totalDeAlunosEfetivaramMatricula++;
                    totalDeAlunosEfetivaramMatricula += Integer.parseInt(rotina.getQ8a());
                }
                if (rotina.getQ8b() != null && !rotina.getQ8b().isEmpty() && Integer.parseInt(rotina.getQ8b()) > 0) {
                    totalDeAlunosConfirmaramOnline++;
                    totalDeAlunosConfirmaramOnline += Integer.parseInt(rotina.getQ8b());
                }

                Integer TotalAlunos8a = 0;
                if (totalDeAlunosEfetivaramMatricula != 0) {
                    TotalAlunos8a = totalDeAlunosObservados / totalDeAlunosEfetivaramMatricula;
                } else {
                    TotalAlunos8a = 4;
                }
                if (TotalAlunos8a > 3) {
                    contagem.setQ8ame(contagem.getQ8ame() + 1);
                } else {
                    contagem.setQ8ama(contagem.getQ8ama() + 1);
                    contagem.setPositivo(contagem.getPositivo() + 1);
                }

                Integer TotalAlunos8b = 0;
                if (totalDeAlunosConfirmaramOnline != 0) {
                    TotalAlunos8b = totalDeAlunosObservados / totalDeAlunosConfirmaramOnline;
                } else {
                    TotalAlunos8b = 4;
                }
                if (TotalAlunos8b > 3) {
                    contagem.setQ8bme(contagem.getQ8bme() + 1);
                } else {
                    contagem.setQ8bma(contagem.getQ8bma() + 1);
                    contagem.setPositivo(contagem.getPositivo() + 1);
                }
            }

            if (rotina.getQ9() != null && rotina.getQ9().equals("sim")) {
                contagem.setQ9sim(contagem.getQ9sim() + 1);
            }
            if (rotina.getQ9() != null && rotina.getQ9().equals("nao")) {
                contagem.setQ9nao(contagem.getQ9nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ10() != null && rotina.getQ10().equals("sim")) {
                contagem.setQ10sim(contagem.getQ10sim() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }
            if (rotina.getQ10() != null && rotina.getQ10().equals("nao")) {
                contagem.setQ10nao(contagem.getQ10nao() + 1);
            }
        }
        Locale locale = new Locale("pt", "BR");
        GregorianCalendar calendar = new GregorianCalendar();
        SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
        contagem.setDataatual(formatador.format(calendar.getTime()));
        System.out.println(formatador.format(calendar.getTime()));
        return contagem;
    }
}
